<?php
/**
 * This file is part of webman.
 *
 * Licensed under The MIT License
 * For full copyright and license information, please see the MIT-LICENSE.txt
 * Redistributions of files must retain the above copyright notice.
 *
 * @author    walkor<walkor@workerman.net>
 * @copyright walkor<walkor@workerman.net>
 * @link      http://www.workerman.net/
 * @license   http://www.opensource.org/licenses/mit-license.php MIT License
 */

use Monolog\Formatter\LineFormatter;
use Monolog\Handler\RotatingFileHandler;
use Monolog\Logger;

return [
    'default' => [
        'handlers' => [
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/webman.log',
                    7, //$maxFiles
                    Monolog\Logger::DEBUG,
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => [ null, 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/debug/debug.log', 0, Monolog\Logger::DEBUG, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/info/info.log', 0, Monolog\Logger::INFO, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/notice/notice.log', 0, Monolog\Logger::NOTICE, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/warning/warning.log', 0, Monolog\Logger::WARNING, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/error/error.log', 0, Monolog\Logger::ERROR, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/critical/critical.log', 0, Monolog\Logger::CRITICAL, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/alert/alert.log', 0, Monolog\Logger::ALERT, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/emergency/emergency.log', 0, Monolog\Logger::EMERGENCY, false
                ],
                'formatter' => [
                    'class' => Monolog\Formatter\LineFormatter::class,
                    'constructor' => ["[%datetime%] %message% %context% %extra%\n", 'Y-m-d H:i:s', true],
                ],
            ],
        ],

    ],
    'request' => [
        'handlers' => [
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/request/request.log', 7, Monolog\Logger::DEBUG
                ],
                'formatter' => [
                    'class' => \support\bootstrap\LogFormatter\RequestFormatter::class,
                    'constructor' => []
                ],
            ]
        ],
    ],
    'sql' => [
        'handlers' => [
            [
                'class' => Monolog\Handler\RotatingFileHandler::class,
                'constructor' => [
                    runtime_path() . '/logs/sql/sql.log', 7, Monolog\Logger::DEBUG
                ],
                'formatter' => [
                    'class' => \support\bootstrap\LogFormatter\SqlFormatter::class,
                    'constructor' => []
                ],
            ]
        ],
    ],
];
